home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / dsp / dspgroup / bell212.arc / TDIAL.ASM < prev    next >
Encoding:
Assembly Source File  |  1986-07-25  |  9.2 KB  |  234 lines

  1.        TITL 'TMS32011 DIALER CODE'
  2.        IDT  'DIALER'
  3.        OPTION XREF,TUNLST
  4. **********************************************************
  5. *****    320 Based DTMF Dialer code.             *****
  6. *****                             *****
  7. *****    Written by Peter Ehlig    12/02/85         *****
  8. *****    Revision 1.0                     *****
  9. *****                             *****
  10. *****    COPYRIGHT TEXAS INSTRUMENTS,  07/25/86         *****
  11. *****                             *****
  12. **********************************************************
  13.     DEF  DIAL,TONY0,TONY1,NXTTON
  14.     REF  ANALOG,TMS011,TONTBL
  15.        PAGE
  16. ********------------------------------------------********
  17. *****        DATA MEMORY USED.                 *****
  18. ********------------------------------------------********
  19. SPAR0  EQU  0
  20. SPAR1  EQU  1
  21. SPAR2  EQU  2
  22. H8000  EQU  3           # DIALER ROUNDING FACTOR
  23. ONE    EQU  4           I# VALUE 1 HELD FOR MASKING
  24. MASK1  EQU  5           I# SWAVE MACRO TBL RANGE ADJ >7F
  25. MASK2  EQU  6           I# SWAVE MACRO TBL RANGE ADJ >7FFF
  26. MASK3  EQU  7           # XMIT PHASE ENCODE MASK >0006
  27. OFSET0 EQU  8           I# SWAVE MACRO POINT TO COS TABLE
  28. XMTOUT EQU  9           % XMIT HOLD FOR TRANSMIT OUTPUT
  29. XDIBIT EQU  10           # XMIT DIBIT ISOLATION MASK
  30. PLUS1  EQU  11           I# +1 Q12 >FFF & MASK VALUE
  31. XMTD   EQU  12           % XMIT HOLD DTE INPUT
  32. RECST  EQU  13           I% RECEIVER STATUS
  33. BSMAX  EQU  14         & I% BAUD SIGNAL 0AX
  34. LASTM  EQU  14         & % LAST MAX SIGNAL IN 300BPS
  35. SAMPLE EQU  15           % BAUD LIMIT SAMPLE COUNT
  36. SAMXMT EQU  16           % TRANSMITTER SAMPLE COUNT
  37. BITOUT EQU  17           % DIBIT POSITIONED TO XMIT/7742
  38. RDIBIT EQU  18           % DECODED DIBIT
  39. SPAR3  EQU  19
  40. MINUS1 EQU  20           I# >F000 MASK FOR Q12 FORMAT
  41. TEMP   EQU  21           * MISC. TEMPERORY REGISTER
  42. XMTHLD EQU  22           % BIASED TRANSMIT DATA
  43. RECHLD EQU  23           % BIASED RECEIVE DATA
  44. DBUGC  EQU  24           @ COUNT BAUD CYCLES FOR DEBUG
  45. DBUGC2 EQU  25           @ ERROR BAUD DELAY COUNT
  46. HIST1  EQU  26           @ DEBUG DESCRAMBLER
  47. HIST2  EQU  27           @ DEBUG DESCRAMBLER
  48. DPOINT EQU  28           @ BAUD EDGE POINTER
  49. SPAR4  EQU  29
  50. SPAR5  EQU  30
  51. SPAR6  EQU  31
  52. RDELTA EQU  32         & % RECEIVE SINE TABLE STEP
  53. TALF1  EQU  32         & % DTMF TONE 1 SINE TABLE STEP
  54. RALPHA EQU  33         & % RECEIVER CURRENT SINE ANGLE
  55. FRACT1 EQU  33         & % DTMF TONE 1 CURRENT ANGLE
  56. SINA   EQU  34         & % SINE TABLE READING
  57. TONE1  EQU  34         & % DTMF TONE 1 READING
  58. XDELTA EQU  35         & % TRANSMIT SINE TABLE STEP
  59. TALF2  EQU  35         & % DTMF TONE 2 SINE TABLE STEP
  60. XALPHA EQU  36         & % TRANSMIT CURRENT SINE ANGLE
  61. FRACT2 EQU  36         & % DTMF TONE 2 CURRENT ANGLE
  62. COSA   EQU  37         & % COSINE TABLE READING
  63. TONE2  EQU  37         & % DTMF TONE 2 READING
  64. SPAR7  EQU  38
  65. SPAR8  EQU  39
  66. SPAR9  EQU  40
  67. SPAR10 EQU  41
  68. SPAR11 EQU  42
  69. SPAR12 EQU  43
  70. SPAR13 EQU  44
  71. OFSET1 EQU  45           # XMIT POINT TO DIBIT ENCODE TABLE
  72. XPTR   EQU  46           # XMIT POINT TO RAISED COS TABLE
  73. INDXPH EQU  47           I# XMIT POINT TO PHASE ENCODE TABLE
  74. RPHSE  EQU  48           I# OFFSET FOR RECEIVE PHASE DECODE
  75. RBUF0  EQU  49         & % FILTER DATA 49-85
  76. FILIN  EQU  49         & % INPUT TO 300BPS MODEM
  77. RBUF1  EQU  50         & % RECEIVE BPF  COEFFICIENT
  78. *
  79. COEFBP EQU  50         & % 50-99 COEFS FOR 300BPS FILTERS
  80. *
  81. RBUF2  EQU  51           % RECEIVE BPF  COEFFICIENT
  82. RBUF3  EQU  52           % RECEIVE BPF  COEFFICIENT
  83. RBUF4  EQU  53           % RECEIVE BPF  COEFFICIENT
  84. RBUF5  EQU  54           % RECEIVE BPF  COEFFICIENT
  85. RBUF6  EQU  55           % RECEIVE BPF  COEFFICIENT
  86. RBUF7  EQU  56           % RECEIVE BPF  COEFFICIENT
  87. RBUF8  EQU  57           % RECEIVE BPF  COEFFICIENT
  88. RBUF9  EQU  58           % RECEIVE BPF  COEFFICIENT
  89. RBUF10 EQU  59           % RECEIVE BPF  COEFFICIENT
  90. RBUF11 EQU  60           % RECEIVE BPF  COEFFICIENT
  91. RBUF12 EQU  61           % RECEIVE BPF  COEFFICIENT
  92. RBUF13 EQU  62           % RECEIVE BPF  COEFFICIENT
  93. RBUF14 EQU  63           % RECEIVE BPF  COEFFICIENT
  94. RBUF15 EQU  64           % RECEIVE BPF  COEFFICIENT
  95. RBUF16 EQU  65           % RECEIVE BPF  COEFFICIENT
  96. RBUF17 EQU  66           % RECEIVE BPF  COEFFICIENT
  97. RBUF18 EQU  67           % RECEIVE BPF  COEFFICIENT
  98. RBUF19 EQU  68           % RECEIVE BPF  COEFFICIENT
  99. RBUF20 EQU  69           % RECEIVE BPF  COEFFICIENT
  100. RBUF21 EQU  70           % RECEIVE BPF  COEFFICIENT
  101. RBUF22 EQU  71           % RECEIVE BPF  COEFFICIENT
  102. RBUF23 EQU  72           % RECEIVE BPF  COEFFICIENT
  103. RBUF24 EQU  73           % RECEIVE BPF  COEFFICIENT
  104. RBUF25 EQU  74           % RECEIVE BPF  COEFFICIENT
  105. RBUF26 EQU  75           % RECEIVE BPF  COEFFICIENT
  106. RBUF27 EQU  76           % RECEIVE BPF  COEFFICIENT
  107. RBUF28 EQU  77           % RECEIVE BPF  COEFFICIENT
  108. RBUF29 EQU  78           % RECEIVE BPF  COEFFICIENT
  109. RBUF30 EQU  79           % RECEIVE BPF  COEFFICIENT
  110. RBUF31 EQU  80           % RECEIVE BPF  COEFFICIENT
  111. RBUF32 EQU  81           % RECEIVE BPF  COEFFICIENT
  112. RBUF33 EQU  82           % RECEIVE BPF  COEFFICIENT
  113. RBUF34 EQU  83           % RECEIVE BPF  COEFFICIENT
  114. RBUF35 EQU  84           % RECEIVE BPF  COEFFICIENT
  115. RBUF36 EQU  85           % RECEIVE BPF  COEFFICIENT
  116. XIOUT  EQU  86           % XMIT HOLD FILTERED I VALUE
  117. XQOUT  EQU  87           % XMIT HOLD FILTERED Q VALUE
  118. XOLDPH EQU  88           % XMIT HOLD LAST PHASE
  119. XNEWPH EQU  89           % XMIT HOLD NEW PHASE
  120. ERRSIG EQU  90           % FILTERED CARRIER ERROR SIGNAL
  121. PLL1   EQU  91           I% CARRIER RECOVERY PLL FILTER COEFFICIENT1
  122. PLL2   EQU  92           I% CARRIER RECOVERY PLL FILTER COEFFICIENT2
  123. SIGNI  EQU  93           % SIGN OF I CHANNEL (TO COMPUTE ERROR)
  124. SIGNQ  EQU  94           % SIGN OF Q CHANNEL (TO COMPUTE ERROR)
  125. ERROR  EQU  95           % SIGNI*(Q)-SIGNQ*(I) = ERROR
  126. ERNM1  EQU  96           I% PLL TAPS
  127. CTRND  EQU  97           I% CARRIER SHIFT TRENDS
  128. TRNDCT EQU  98           I% CARRIER TREND BAUD COUNT
  129. ISUM   EQU  99           % FILTERED/PHASE SHIFTED SAMPLE
  130. QSUM   EQU  100      & % FILTERED/PHASE SHIFTED SAMPLE
  131. *
  132. DLYBUF EQU  100      & % 100-119 DATA DELAY/300BPS MODEM
  133. *
  134. RECI   EQU  101        % BASEBAND I CHANNEL
  135. RECQ   EQU  102        % BASEBAND Q CHANNEL
  136. ENRGY  EQU  103        % CURRENT ENERGY
  137. PENRGY EQU  104        % PREVIOUS ENERGY
  138. ERNM2  EQU  105        I% CLOCK RECOVERY PLL TAPS
  139. BERROR EQU  106        %  CALCULATED BAUD ERROR
  140. BEROUT EQU  107        %  SCALED/FILTERED BAUD ERROR
  141. BPLL1  EQU  108        I# BAUD PLL COEF
  142. BPLL2  EQU  109        I# BAUD PLL COEF
  143. TRSHD1 EQU  110        I# THRESHOLD FOR CARRIER RECOVERY
  144. TRSHD2 EQU  111        I# THRESHOLD FOR BAUD RECOVERY
  145. XIBUF0 EQU  112        % XMIT STORE DATA FOR RAISED COS
  146. XIBUF1 EQU  113        % XMIT STORE DATA FOR RAISED COS
  147. XIBUF2 EQU  114        % XMIT STORE DATA FOR RAISED COS
  148. XQBUF0 EQU  115        % XMIT STORE DATA FOR RAISED COS
  149. XQBUF1 EQU  116        % XMIT STORE DATA FOR RAISED COS
  150. XQBUF2 EQU  117        % XMIT STORE DATA FOR RAISED COS
  151. CX0    EQU  118        # XMIT COEF FOR RAISED COS
  152. CX1    EQU  119        # XMIT COEF FOR RAISED COS
  153. CX2    EQU  120      & # XMIT COEF FOR RAISED COS
  154. BPCOEF EQU  120      & % VAR POINTER TO 300BPS COEFS
  155. ROLDPH EQU  121      & I% PREVIOUS ABSOLUTE PHASE (QUADRANT)
  156. TMDLY  EQU  121      & % DELAY COUNTER REGISTER
  157. RNEWPH EQU  122      & % CURRENT  ABSOLUTE PHASE (QUADRANT)
  158. FSP1   EQU  122      & % SPACE FILTER ENERGY
  159. AGC    EQU  123      & I% AUTOMATIC GAIN FACTOR
  160. FMK1   EQU  123      & % MARK FILTER ENERGY
  161. AGCRA  EQU  124      & I% SIGNAL MAX RUNNING AVERAGE FOR AGC
  162. BIT103 EQU  124      & * HOLD REGISTER FOR DATA BIT
  163. AGCOFF EQU  125      & I% AGC CALCULATION LOOKUP TABLE
  164. MARK1  EQU  125      & * MARK STEP VALUE 300BPS MODEM
  165. AGCNT  EQU  126      & I% BAUD SAMPLE COUNT
  166. SPACE1 EQU  126      & I* SPACE STEP VALUE 300BPS MODEM
  167. AGCLEV EQU  127        % TEMPORARY AGC LEVEL (AGCUPT)
  168. *---------------
  169.        PAGE
  170. **********************************************************
  171. *****    320 BASED TONE DIALER                 *****
  172. **********************************************************
  173. DIAL   EQU  $
  174.        LACK >0F     MASK OFF COMMAND BITS
  175.        AND  XMTD    TO GET DIGIT
  176.        SACL TEMP    SAVE COMMAND
  177.        LACK TONTBL    GET LOCATION OF DTMF TABLE
  178.        ADD  TEMP,1    ADD TONE*2 VALUE
  179.        TBLR TALF1    GET SINE TABLE INCREMENT TONE 1
  180.        ADD  ONE     INCREMENT TONE TABLE ADDRESS
  181.        TBLR TALF2    GET SINE TABLE INCREMENT TONE 2
  182.        LAC  ONE,10    SET THE DTMF TIMER
  183.        SACL SAMXMT    FOR OVER 80MS TONE LENGTH
  184.        CALL TONY0
  185. DTMFL  CALL TONY1
  186.        LAC  SAMXMT    DECREMENT THE LONG COUNTER
  187.        SUB  ONE     BY ONE AND CHECK IF TONE
  188.        SACL SAMXMT    FINISHED
  189.        BNZ  DTMFL    IF NOT THEN CONTINUE
  190. *   REINITIALIZE FOR MODEM EXECUTION
  191.        ZAC
  192.        SACL XMTOUT    CLEAR OUT SERIAL XMIT BUFFER
  193.        CALL ANALOG    WAIT FOR FRAME
  194.        CALL TMS011    BY LOADING IT WITH A ZERO
  195. *
  196.        RET        RETURN TO CALLING SEQUENCE
  197. *
  198. TONY0  EQU  $
  199.        LACK 0        CLEAR THE FRACTIONAL
  200.        SACL FRACT1    SUMMING REG1
  201.        SACL FRACT2    SUMMING REG2
  202.        LAC  ONE,14    SET MASK/ROUNDING VALUE TO
  203.        SACL H8000    TO >8000
  204. *
  205. TONY1  LARP 1
  206.        LARK 1,TALF1    POINT TO BEGINING OF DATA
  207.        CALL NXTTON    GET FIRST TONE VALUE
  208.        CALL NXTTON    GET SECOND TONE VALUE
  209.        LAC  TONE1,13    GET FIRST TONE VALUE
  210.        ADD  TONE2,13    AND ADD IN SECOND TONE
  211.        SACH XMTOUT    AND HOLD IT TILL FRAME
  212.        CALL ANALOG    WAIT FOR FRAME
  213.        CALL TMS011    OUTPUT AND INPUT
  214.        RET
  215. *
  216. NXTTON EQU  $
  217.        LAC  *+,12    GET NEXT INCREMENT AND
  218.        ADD  *,12    ADD IN CURRENT POSITION
  219.        SUB  H8000,9    COMPARE TO MAXIMUM TABLE
  220.        BGEZ OVRFL1    IF > 0 THEN OK
  221.        ADD  H8000,9    ELSE RESTORE NUMBER
  222. OVRFL1 SACH *+,4    SAVE POSITION
  223.        ADD  H8000,1    ROUND NUMBER UP
  224.        SUB  H8000,9    COMPARE TO MAXIMUM TABLE
  225.        BGEZ OVRFL2    IF > 0 THEN OK
  226.        ADD  H8000,9    ELSE RESTORE NUMBER
  227. OVRFL2 ADDH OFSET0    ADD IN TOP OF THE SINE TABLE
  228.        SACH TEMP    SAVE THE INTEGER PART
  229.        LAC  TEMP    ADD IN OFFSET VALUE
  230.        TBLR *+        GET THE TONE VALUE
  231.        RET
  232. *
  233.        END
  234.